#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <QPushButton>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    _t1 = new Teacher();
    _s1 = new Student();
    //添加按钮
    QPushButton* _btn = new QPushButton("按钮",this);
    resize(600,400);
    //连接信号和槽
    //connect参数1 信号发送者，参数2 发送的信号
    //       参数3 信号的接收者 参数4 槽函数
    //connect(_t1,&Teacher::signa,_s1,&Student::slot);
    //点击按钮，触发信号
    //connect(_btn,&QPushButton::clicked,this,&MainWindow::trigger);


    //信号和槽函数发生重载时，需要用函数指确定函数的地址
    void (Teacher::*signaadder1)()= &Teacher::signa;//无参信号地址
    void (Teacher::*signaadder2)(QString)= &Teacher::signa;//有参信号地址

    void (Student::*slotadder1)() = &Student::slot;//无参槽函数地址
    void (Student::*slotadder2)(QString) = &Student::slot;//有参槽函数地址
    //连接信号和槽函数
    connect(_t1,signaadder2,_s1,slotadder2);
    //通过按钮点击触发信号
    connect(_btn,&QPushButton::clicked,this,&MainWindow::trigger);

}
void MainWindow::trigger()
{
    //触发信号关键字
    emit _t1->signa("Hello World");
}

MainWindow::~MainWindow()
{
    delete ui;
}
